#define _CRT_SECURE_NO_WARNINGS 1

//# include<bits/stdc++.h>
//using namespace std;
//
//
//int main()
//{
//    int a, b, c;
//    cin >> a >> b >> c;
//    int min_v = min(a, min(b, c));
//    int max_v = max(a, max(b, c));
//    printf("%d->%d->%d", min_v, a + b + c - min_v - max_v, max_v);
//    return 0;
//}
//
//
//# include<bits/stdc++.h>
//using namespace std;
//
//
//int main()
//{
//    int arr[2000] = { 0 }, n = 0;
//    cin >> n;
//    for (int i = 0; i < n; ++i)
//    {
//        int k = 0, tmp = 0;
//        cin >> k;
//        while (k--)
//        {
//            cin >> tmp;
//            ++arr[tmp];
//        }
//    }
//    int max = 0, max_i = 0;
//    for (int i = 1000; i >= 0; --i)
//    {
//        if (max < arr[i])
//        {
//            max = arr[i];
//            max_i = i;
//        }
//    }
//    cout << max_i << " " << max;
//    return 0;
//}

# include<bits/stdc++.h>
using namespace std;

int main()
{
    int n = 0;
    string str;
    cin >> n;
    cin.get();
    getline(cin, str);

    int col = ceil(str.size() * 1.0 / n);
    char arr[n][col] = { 0 };
    int count = 0;
    for (int i = col - 1; i >= 0; --i)
    {
        for (int j = 0; j < n; ++j)
        {
            arr[j][i] = str.at(count++);
            if (count == str.size())
            {
                break;
            }
        }
    }

    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < col; ++j)
        {
            if (arr[i][j] == '\0')
            {
                cout << ' ';
            }
            else
            {
                cout << arr[i][j];
            }
        }
        cout << endl;
    }
    return 0;
}